Skip to content
This repository was archived by the owner on Aug 17, 2026. It is now read-only.

feat: session tail rehydrate (#13) to main - #19

Closed
joeshull wants to merge 11 commits into
mainfrom
develop
Closed

feat: session tail rehydrate (#13) to main#19
joeshull wants to merge 11 commits into
mainfrom
develop

Conversation

@joeshull

Copy link
Copy Markdown

Summary

Ship session tail rehydrate (PR #13) from develop to main.

Includes:

  • Large-session ~4 MiB tail rehydrate + load-older
  • Live-follow / prepend scroll fixes
  • CI tsc unblock after rebase

Merged on develop: #13

Joe and others added 9 commits July 16, 2026 18:02
Cold open and IDB persist keep only a newest-by-byte-budget tail (~4 MiB)
instead of full-history replay. Server subscribe gains mode/window/fromSeq;
client re-pins after hydrate and can page older history from the top.
Smoke fixes on top of mode:tail:
- ChatView: only wheel/touch clears stick during hydrate (virtualizer pin no longer kills live follow)
- load-older: no markReplaying/catch-up (avoid live-tail wipe)
- IDB rehydrate seeds hasMoreOlder/minSeq; infer window meta when server omits it
- windowEventsForSubscribe: lastSeq>0 is strict delta (disk full buffer must not re-send)
- stale lastSeq rebuild uses cold tail window
- explicit Load older messages control; batch send waits on back-pressure
- Vite allowedHosts for zrok smoke
- Declare MessageHandlerDeps/ChatView Props/ReplayPersister contracts
- Stale lastSeq: preserve legacy full mode; only explicit mode:tail windows
- Disk load: reset when client lastSeq > loaded max, then cold rebuild
- Load-older re-reduce keeps pending interactive asks
- session_state_reset clears history-window/loadingOlder
- loadingOlder clears only on isLast; no false hasMoreOlder on warm deltas
- IDB put rechecks full array serialization against byte budget
- Regression tests for client + server paths
- mode:tail disk-stale recovery test
- ChatView load-older near-top/button + prepend compensation
- virtualizer onChange compensates height when unstuck (D5 race)
Pre-existing develop tip errors that break CI on PR merge base:
- ExtensionToServerMessage includes ReplayCompleteMessage
- client OMP_SECRET_UNCHANGED sentinel + fetch test casts
- extension ask/polyfill and bridge process casts
- image-fit maybeResize event.input typing for tool_call union
feat: session tail rehydrate for large chat history
- ChatView scrollToTurn expects D5 height-delta compensation
- role-model-tools tests use ~/.omp/agent/config.yml modelRoles;
  presets are non-durable on OMP
fix(test): CI after session-tail-rehydrate (#13)
Prevents vitest unhandled "window is not defined" when tanstack
virtual notifies after jsdom teardown (CI suite error with all tests green).
Joe and others added 2 commits July 16, 2026 19:12
@joeshull

Copy link
Copy Markdown
Author

Ready for main

develop now includes:

Blocked only by required approving review (main protection: 1 review, enforce_admins). I cannot self-approve.

Please approve this PR so it can merge developmain.

@joeshull

Copy link
Copy Markdown
Author

Superseded: main moved via upstream sync #17; develop→main is no longer FF. Opening a cherry-pick/PR from current main.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant